﻿using System;
using System.Threading;
using System.Threading.Tasks;
using RoAssistant.Client;
using RoAssistant.Web;

namespace RoAssistant
{
    /// <summary>
    /// Client Tcs工具主程序
    /// </summary>
    class Program
    {
        /// <summary>
        /// 主程序，RoAssistant入口
        /// </summary>
        /// <param name="args">等待解析的程序名称</param>
        static void Main(string[] args)
        {
            Console.Title = "RoAssistant";
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.WriteLine("本程序为RoAssistant,专门为测试人员提供较为便捷的截取Tci文件服务，输入-H/-help 获取帮助...\r\n");
            //输入
            string input = Console.ReadLine();

            Control(input);
        }

        /// <summary>
        /// 操作，针对web或client进行控件的截取
        /// </summary>
        private static void Control(string input)
        {
            if (input.Equals("-H") || input.Equals("-help"))
            {
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("RoAssistant帮助说明:");
                Console.WriteLine("1.桌面仅保留本系统和待截取Tci的程序, 其他程序请保持关闭或最小化.");
                Console.WriteLine("2.完成上一步操作后, 按输入窗体显示的名称后, 然后最小化本程序, 静默等待5秒，随后会开始进行截取Tci的活动, 请耐心等待.");
                Console.WriteLine("3.如果是截取Web的操作控件，请输入网址，静默等待5秒，随后会开始进行截取Tci的活动, 请耐心等待.");
                Console.WriteLine("4.请窗体显示名称......");
                string info = Console.ReadLine();
                Thread.Sleep(5000);
                Task tciTask = new Task(delegate { StartTciMainFunc(info); });
                tciTask.Start();
                tciTask.Wait();
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("完成截取，如需继续，请完成界面操作后输入非ESC的其他字符：");
                input = Console.ReadLine();
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("参数错误，如需继续，请完成界面操作后输入非ESC的其他字符：");
                input = Console.ReadLine();
            }

            //输入
            if (input != null && input.ToLower() == "esc")
            {
                Environment.Exit(0);
            }
            else
            {
                Control(input);
            }
        }


        /// <summary>
        /// 主程序 开始截取Tci文件
        /// </summary>
        /// <param name="windowname">程序名称</param>
        public static void StartTciMainFunc(string windowname)
        {
            //判断windowname是不是网址
            if (windowname.Contains("http"))
            {
                FindWebMain.FindWebMainMainFunc(windowname);
            }
            //非网址
            else
            {
                FindClientMain.FindClientMainFunc(windowname);
            }
            
        }
    }
}
